Forum des exercices du projet Zuul

Plus de technique

  
 
Avatar anonfirstname2 anonlastname2
Plus de technique
par anonfirstname2 anonlastname2, samedi 10 avril 2021, 16:25
 
Si des liens de cette page n'aboutissent plus, merci de le signaler à Denis BUREAU.
Si des liens d'autres pages n'aboutissent plus, vous pourrez sans doute les retrouver grâce à https://web.archive.org/.


  • Si vos images sont trop grandes pour que toute la fenêtre de votre jeu tienne sur l'écran, ou bien si vos images sont de tailles différentes et que les changemennts de format incessants vous gênent, modifiez la méthode showImage de UserInterface en remplaçant :
      this.aImage.setIcon( vIcon );
    par :
      this.aImage.setIcon( new ImageIcon( vIcon.getImage().getScaledInstance(640,400,java.awt.Image.SCALE_SMOOTH) ) );
    (merci Arthur FORTIN)

  • Lecture simple de fichiers de texte:
    • Dans ce mini-cours, lire les lignes en noir et retenir la solution en bleu.
      Exemple de classe pour essayer :
      import java.util.Scanner;
      import java.io.File;
      import java.io.FileNotFoundException;
      public class LectureFichierSimple
      {
          public static void lecture( final String pNomFichier )
          {
              Scanner vSc;
              try { // pour "essayer" les instructions suivantes :
                  vSc = new Scanner( new File( pNomFichier ) );
                  while ( vSc.hasNextLine() ) {
                      String vLigne = vSc.nextLine();
                      // traitement de la ligne lue
                  } // while
              } // try
              catch ( final FileNotFoundException pFNFE ) {
                  // traitement en cas d'exception
              } // catch
          } // lecture
      } // LectureFichierSimple

    • Le tutoriel de Sun (maintenant Oracle) montre une autre manière de faire (en anglais).
  • Accès "universel" aux fichiers (image, son, texte, ...):
    • Pour lire dans un fichier de texte dans plus de situations, utiliser :
      java.io.InputStream vIS =
          this.getClass().getClassLoader().getResourceAsStream(
              "chemin_relatif/nom_de_fichier.extension" );
      Scanner sc = new Scanner( vIS );

      Si ça ne fonctionne pas, essayez de supprimer .getClassLoader()
    • De façon encore plus générale, pour accéder à un fichier (même dans le répertoire courant), utiliser :
      java.net.URL monURL =
          this.getClass().getClassLoader().getResource(
              "chemin_relatif/nom_de_fichier.extension" );

      faute de quoi, le jeu ne fonctionnera pas en applette et ne pourra pas être distribué sous forme de fichier archive.
      Si ça ne fonctionne pas, essayez de supprimer .getClassLoader()
      Si ça ne fonctionne toujours pas, essayez
      java.net.URL monURL =
          java.net.URI.create(
              "chemin_relatif/nom_de_fichier.extension" ).toURL();
    • Si le fichier n'existe pas, vIS ou monURL sera null, ce qui peut être testé avant d'utiliser le Scanner.
    • Dans un .jar, un chemin commençant par un "/" désigne un fichier ou un répertoire situé à la racine du .jar.
    • Lire un fichier .gif (même animé)
    • Lire/jouer un fichier .mp3 (ne pas tenir compte de la 1ère partie JLayer MP3 Library)
    • Lire une vidéo 
  • Création d'un fichier au format PDF:
    • Sous Linux : OpenOffice, menu "Fichier / Exporter au format PDF ..."
    • Sous Windows : idem, ou bien depuis n'importe quel logiciel, imprimer sur l'imprimante PDF995 ou PdfCreator.
  • Création d'une page web personnelle sur perso.esiee.fr :
    Le dossier public_html doit être présent à la racine du compte et doit contenir un fichier nommé index.html.
    Ce fichier sera accessible par l'URL https://perso.esiee.fr/~login/ (en remplaçant login !).
    Pour créer le fichier index.html, plusieurs solutions :
    • Utiliser un éditeur de texte (emacs, vi, nedit, ...) et apprendre les rudiments du langage HTML grâce aux nombreux tutoriels en ligne et en s'inspirant de pages existantes (Voir le code source de la page).
    • Utiliser un éditeur spécialisé HTML et apprendre HTML comme ci-dessus.
    • Utiliser un logiciel de création de page web ou un logiciel de création de site web.
    • Utiliser un logiciel de traitement de texte tel que MS-Word ou Writer et enregistrer le fichier sous forme de fichier HTML.
    Pour modifier les droits d'accès dans public_html :
    • ls -l visualise les droits
      Le standard pour un fichier est : -rw-r--r--
      Le standard pour un répertoire est : drwxr-xr-x
    • Si ce n'est pas le cas, chmod -R go=rX *
    Pour mettre les bons droits d'accès à un répertoire, on peut aussi écrire : chmod 755 nomR
    Pour mettre les bons droits d'accès à un fichier, on peut aussi écrire : chmod 644 nomF

    Voir aussi "Création d'une home page internet" dans la rubrique Informatique de l'intranet.

  • Création d'images de mots sous Linux:
    1. Faire afficher par n'importe quel programme les mots souhaités dans une fenêtre.
    2. Ouvrir un terminal et taper xwd > nom_image.xwd
    3. Le curseur se change en une croix ; cliquer dans la fenêtre où se trouvent les mots. On doit entendre 2 bips.
    4. Dans le terminal, taper xwdtopnm nom_image.xwd | pnmtogif > nom_image.gif
      (remplacer pnmtogif par pnmtojpeg pour produire une image .jpg).
    5. Ouvrir un programme de manipulation d'images tel que gimp pour sélectionner le rectangle souhaité.
    6. Sauvegarder l'image.
  • Création d'images de mots sous Windows:
    1. Faire afficher par n'importe quel programme les mots souhaités dans une fenêtre.
    2. Appuyer simultanément sur ALT et IMPR-ECRAN.
    3. Ouvrir un programme de manipulation d'images tel que 20/20
    4. Faire un COLLER (en tant que nouvelle image).
    5. Sélectionner le rectangle souhaité.
    6. Sauvegarder l'image en .gif ou en .jpg .
  • Interface Homme-Machine graphique:
    • Pour pouvoir poser une question au joueur et récupérer sa réponse sous forme d'une String, on peut utiliser par exemple :
      String vPrenom = javax.swing.JOptionPane.showInputDialog( "Quel est ton prenom ?" );
    • Pour pouvoir faire une pause avant de quitter le programme, on peut ajouter dans UserInterface la méthode :
          /**
           * Sort du programme après pSec secondes
           */
          public void delayedExit( final int pSec )
          {
              Timer vT = new Timer( 1000 * pSec,
                  new ActionListener() {
                      public void actionPerformed( final ActionEvent pE ) {
                          System.exit(0);
                      }
                  });
              vT.start();
          } 
      Il ne faudra pas oublier d'importer javax.swing.Timer .
    • Inventaire visuel (en anglais) des composants graphiques Swing
    • Tutoriel (en anglais) pour utiliser les composants graphiques Swing
    • Tutoriel (en anglais) pour développer des interfaces utilisateurs graphiques (Graphical User Interface) avec Swing
    • Les 3 solutions pour programmer le comportement des boutons (chapitre II.6, la solution 1 est la plus simple)
    • Tutoriel (en anglais) pour gérer les appuis de touches : KeyBindings
    • Livre (en français) : 8 chapitres pour apprendre pas à pas la programmation d'IHM graphiques.
  • Déploiement:
    • Application (voir exercices 7.53 et 7.54) : lire le tutoriel (en anglais).
    • Applette (voir exercice 59 et 60) : lire quelques idées.
    • .jar (voir exercice 58 et 60) : lire le tutoriel (en anglais) sur les fichiers .jar, en particulier "Using JAR Files: The Basics".

(Modifié par Denis BUREAU. Écrit initialement le mardi 8 novembre 2016, 15:38)